﻿using System;
using System.Web;
using System.Web.Services;
using System.Web.Services.Protocols;
using System.ComponentModel;

public class Element<T>
{
    protected Element()
    {
    }

    public Element(string tagName, string id)
    {
    }

    public Color BackgroundColor()
    {
        throw new NotImplementedException();
    }

    public T BackgroundColor(string color)
    {
        throw new NotImplementedException();
    }

    public T BackgroundColor(Color color)
    {
        throw new NotImplementedException();
    }

    public T BackgroundColor(Colors color)
    {
        throw new NotImplementedException();
    }

    public bool Bold()
    {
        throw new NotImplementedException();
    }

    public T Bold(bool bold)
    {
        throw new NotImplementedException();
    }


    public ClassArray Classes;

    public string ClassName()
    {
        throw new NotImplementedException();
    }

    public T ClassName(string className)
    {
        throw new NotImplementedException();
    }

    public bool Collapsed()
    {
        throw new NotImplementedException();
    }

    public T Collapsed(bool collapsed)
    {
        throw new NotImplementedException();
    }

    public string Cursor()
    {
        throw new NotImplementedException();
    }

    public T Cursor(string cursor)
    {
        throw new NotImplementedException();
    }

    public T Cursor(Cursor cursor)
    {
        throw new NotImplementedException();
    }

    public bool Displayed()
    {
        throw new NotImplementedException();
    }

    public bool Enabled()
    {
        throw new NotImplementedException();
    }

    public T Enabled(bool enabled)
    {
        throw new NotImplementedException();
    }

    public Color ForegroundColor()
    {
        throw new NotImplementedException();
    }

    public T ForegroundColor(string color)
    {
        throw new NotImplementedException();
    }

    public T ForegroundColor(Color color)
    {
        throw new NotImplementedException();
    }

    public T ForegroundColor(Colors color)
    {
        throw new NotImplementedException();
    }

    public int Height()
    {
        throw new NotImplementedException();
    }

    public T Height(int height)
    {
        throw new NotImplementedException();
    }

    public T Height(string height)
    {
        throw new NotImplementedException();
    }

    public bool IsMouseOver;

    public bool Italic()
    {
        throw new NotImplementedException();
    }

    public T Italic(bool italic)
    {
        throw new NotImplementedException();
    }

    public int LayoutHeight()
    {
        throw new NotImplementedException();
    }

    public int LayoutWidth()
    {
        throw new NotImplementedException();
    }

    public delegate void UserEvent(UserEventArgs args);
    public delegate void KeyEvent(KeyEventArgs args);
    public delegate void MouseWheelEvent(MouseWheelEventArgs args);

    public event UserEvent OnClick;
    public event UserEvent OnContextMenu;
    public event UserEvent OnDoubleClick;
    public event KeyEvent OnKeyDown;
    public event KeyEvent OnKeyPress;
    public event KeyEvent OnKeyUp;
    public event UserEvent OnMouseDown;
    public event UserEvent OnMouseMove;
    public event UserEvent OnMouseOut;
    public event UserEvent OnMouseOver;
    public event UserEvent OnMouseUp;
    public event MouseWheelEvent OnMouseWheel;

    public int Opacity()
    {
        throw new NotImplementedException();
    }

    public T Opacity(double opacity)
    {
        throw new NotImplementedException();
    }

    public string Position()
    {
        throw new NotImplementedException();
    }

    public T Position(string position)
    {
        throw new NotImplementedException();
    }

    public string Style(string style)
    {
        throw new NotImplementedException();
    }

    public string Style(Style style)
    {
        throw new NotImplementedException();
    }

    public T Style(string style, string value)
    {
        throw new NotImplementedException();
    }

    public T Style(Style style, string value)
    {
        throw new NotImplementedException();
    }

    public Object Tag;
    public T Toggle()
    {
        throw new NotImplementedException();

    }

    public T Toggle(string property)
    {
        throw new NotImplementedException();
    }

    public T Toggle(string property, Array values)
    {
        throw new NotImplementedException();
    }

    public string ToolTip()
    {
        throw new NotImplementedException();
    }

    public T ToolTip(string toolTip)
    {
        throw new NotImplementedException();
    }

    public bool Underline()
    {
        throw new NotImplementedException();
    }

    public T Underline(bool underline)
    {
        throw new NotImplementedException();
    }

    public bool Visible()
    {
        throw new NotImplementedException();
    }

    public T Visible(bool visible)
    {
        throw new NotImplementedException();
    }

    public int Width()
    {
        throw new NotImplementedException();
    }

    public T Width(int width)
    {
        throw new NotImplementedException();
    }

    public T Width(string width)
    {
        throw new NotImplementedException();
    }

    public int X()
    {
        throw new NotImplementedException();
    }

    public T X(int x)
    {
        throw new NotImplementedException();
    }

    public int Y()
    {
        throw new NotImplementedException();
    }

    public T Y(int y)
    {
        throw new NotImplementedException();
    }
}

public class Element
{
    protected Element()
    {
    }

    public Element(string tagName, string id)
    {
    }

    public Color BackgroundColor()
    {
        throw new NotImplementedException();
    }

    public Element BackgroundColor(string color)
    {
        throw new NotImplementedException();
    }

    public Element BackgroundColor(Color color)
    {
        throw new NotImplementedException();
    }

    public Element BackgroundColor(Colors color)
    {
        throw new NotImplementedException();
    }

    public bool Bold()
    {
        throw new NotImplementedException();
    }

    public Element Bold(bool bold)
    {
        throw new NotImplementedException();
    }


    public ClassArray Classes;

    public string ClassName()
    {
        throw new NotImplementedException();
    }

    public Element ClassName(string className)
    {
        throw new NotImplementedException();
    }

    public bool Collapsed()
    {
        throw new NotImplementedException();
    }

    public Element Collapsed(bool collapsed)
    {
        throw new NotImplementedException();
    }

    public string Cursor()
    {
        throw new NotImplementedException();
    }

    public Element Cursor(string cursor)
    {
        throw new NotImplementedException();
    }

    public Element Cursor(Cursor cursor)
    {
        throw new NotImplementedException();
    }

    public bool Displayed()
    {
        throw new NotImplementedException();
    }

    public bool Enabled()
    {
        throw new NotImplementedException();
    }

    public Element Enabled(bool enabled)
    {
        throw new NotImplementedException();
    }

    public Color ForegroundColor()
    {
        throw new NotImplementedException();
    }

    public Element ForegroundColor(string color)
    {
        throw new NotImplementedException();
    }

    public Element ForegroundColor(Color color)
    {
        throw new NotImplementedException();
    }

    public Element ForegroundColor(Colors color)
    {
        throw new NotImplementedException();
    }

    public int Height()
    {
        throw new NotImplementedException();
    }

    public Element Height(int height)
    {
        throw new NotImplementedException();
    }

    public Element Height(string height)
    {
        throw new NotImplementedException();
    }

    public bool IsMouseOver;

    public bool Italic()
    {
        throw new NotImplementedException();
    }

    public Element Italic(bool italic)
    {
        throw new NotImplementedException();
    }

    public int LayoutHeight()
    {
        throw new NotImplementedException();
    }

    public int LayoutWidth()
    {
        throw new NotImplementedException();
    }


    public delegate void UserEvent(UserEventArgs args);
    public delegate void KeyEvent(KeyEventArgs args);
    public delegate void MouseWheelEvent(MouseWheelEventArgs args);

    public event UserEvent OnClick;
    public event UserEvent OnContextMenu;
    public event UserEvent OnDoubleClick;
    public event KeyEvent OnKeyDown;
    public event KeyEvent OnKeyPress;
    public event KeyEvent OnKeyUp;
    public event UserEvent OnMouseDown;
    public event UserEvent OnMouseMove;
    public event UserEvent OnMouseOut;
    public event UserEvent OnMouseOver;
    public event UserEvent OnMouseUp;
    public event MouseWheelEvent OnMouseWheel;

    public int Opacity()
    {
        throw new NotImplementedException();
    }

    public Element Opacity(double opacity)
    {
        throw new NotImplementedException();
    }

    public string Position()
    {
        throw new NotImplementedException();
    }

    public Element Position(string position)
    {
        throw new NotImplementedException();
    }

    public string Style(string style)
    {
        throw new NotImplementedException();
    }

    public string Style(Style style)
    {
        throw new NotImplementedException();
    }

    public Element Style(string style, string value)
    {
        throw new NotImplementedException();
    }

    public Element Style(Style style, string value)
    {
        throw new NotImplementedException();
    }

    public Object Tag;
    public Element Toggle()
    {
           throw new NotImplementedException();

    }

    public Element Toggle(string property)
    {
        throw new NotImplementedException();
    }

    public Element Toggle(string property, Array values)
    {
        throw new NotImplementedException();
    }

    public string ToolTip()
    {
        throw new NotImplementedException();
    }

    public Element ToolTip(string toolTip)
    {
        throw new NotImplementedException();
    }

    public bool Underline()
    {
        throw new NotImplementedException();
    }

    public Element Underline(bool underline)
    {
        throw new NotImplementedException();
    }

    public bool Visible()
    {
        throw new NotImplementedException();
    }

    public Element Visible(bool visible)
    {
        throw new NotImplementedException();
    }

    public int Width()
    {
        throw new NotImplementedException();
    }

    public Element Width(int width)
    {
        throw new NotImplementedException();
    }

    public Element Width(string width)
    {
        throw new NotImplementedException();
    }

    public int X()
    {
        throw new NotImplementedException();
    }

    public Element X(int x)
    {
        throw new NotImplementedException();
    }

    public int Y()
    {
        throw new NotImplementedException();
    }

    public Element Y(int y)
    {
        throw new NotImplementedException();
    }
}
